﻿using BW.MLTT.Domain.DTO;
using BW.MLTT.Domain.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BW.MLTT.IService
{
    public interface IGoodService:IBaseService<T_Good>
    {
       
        /// <summary>
        /// 登陆
        /// </summary>
        /// <param name="loginDTO"></param>
        /// <returns></returns>
        T_User Login(RequestLoginDTO loginDTO);
        #region 商品
        
        /// <summary>
        /// 商品列表
        /// </summary>
        /// <param name="pageindex"></param>
        /// <param name="pagesize"></param>
        /// <param name="listcount"></param>
        /// <param name="pagecount"></param>
        /// <returns></returns>
        List<T_Good> GetGoods(int pageindex,int pagesize,out int listcount,out int pagecount);
        /// <summary>
        /// 商品添加
        /// </summary>
        /// <param name="good"></param>
        /// <returns></returns>
        int AddGoods(T_Good good);
        /// <summary>
        /// 逻辑删除
        /// </summary>
        /// <param name="goods"></param>
        /// <returns></returns>
        int DeletedGood(List<T_Good> goods);
        /// <summary>
        /// 修改商品
        /// </summary>
        /// <param name="good"></param>
        /// <returns></returns>
        int UpdateGood(T_Good good);
        /// <summary>
        /// 批量添加商品
        /// </summary>
        /// <param name="goods"></param>
        /// <returns></returns>
        int AddRangeGood(List<T_Good> goods);
        /// <summary>
        /// 添加图片到图片表
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="Url"></param>
        /// <returns></returns>
        int AddImage(string Id, string Url);
        /// <summary>
        /// 删除图片表的图片
        /// </summary>
        /// <param name="Url"></param>
        /// <returns></returns>
        int DeletedImages(string Url);
        /// <summary>
        /// 获取图片反填
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        List<T_Images> GetT_Images(string ID);
        #endregion
        #region 养殖
        /// <summary>
        /// 养殖信息表添加
        /// </summary>
        /// <param name="cultivation"></param>
        /// <returns></returns>
        int AddCultivation(T_Cultivation cultivation);
        /// <summary>
        /// 养殖信息表修改
        /// </summary>
        /// <param name="cultivation"></param>
        /// <returns></returns>
        int UpdateCultivation(T_Cultivation cultivation);
        /// <summary>
        /// 养殖信息表反填
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_Cultivation GetCultivationFind(string goodId);
        /// <summary>
        /// 显示保健信息
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        List<T_Immune> GetT_Immunes(string goodId);
        /// <summary>
        /// 添加保健信息
        /// </summary>
        /// <param name="immune"></param>
        /// <returns></returns>
        int AddImmunes(T_Immune immune);
        /// <summary>
        /// 修改保健信息
        /// </summary>
        /// <param name="immune"></param>
        /// <returns></returns>
        int UpdateImmunes(T_Immune immune);
        /// <summary>
        /// 删除保健信息
        /// </summary>
        /// <param name="immune"></param>
        /// <returns></returns>
        int DeletedImmunes(T_Immune immune);
        /// <summary>
        /// 添加养殖企业
        /// </summary>
        /// <param name="enterprise"></param>
        /// <returns></returns>
        int AddCultivationEnterprise(T_CultivationEnterprise enterprise);
        /// <summary>
        /// 修改养殖企业
        /// </summary>
        /// <param name="enterprise"></param>
        /// <returns></returns>
        int UpdateCultivationEnterprise(T_CultivationEnterprise enterprise) ;
        /// <summary>
        /// 养殖企业反填
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_CultivationEnterprise GetCultivationEnterpriseFind(string goodId);


        #endregion
        #region 屠宰
        /// <summary>
        /// 添加屠宰信息
        /// </summary>
        /// <param name="slaughter"></param>
        /// <returns></returns>
        int AddSlaughter(T_Slaughter slaughter);
        /// <summary>
        /// 修改屠宰信息
        /// </summary>
        /// <param name="slaughter"></param>
        /// <returns></returns>
        int UpdateSlaughter (T_Slaughter slaughter) ;
        /// <summary>
        /// 反填屠宰信息
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_Slaughter GetSlaughterFind(string goodId);
        /// <summary>
        /// 添加屠宰企业
        /// </summary>
        /// <param name="enterprise"></param>
        /// <returns></returns>
        int AddSlaughterEnterprise(T_SlaughterEnterprise enterprise);
        /// <summary>
        /// 修改屠宰企业
        /// </summary>
        /// <param name="enterprise"></param>
        /// <returns></returns>
        int UpdateSlaughterEnterprise(T_SlaughterEnterprise enterprise);
        /// <summary>
        /// 反填屠宰企业
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_SlaughterEnterprise GetSlaughterEnterpriseFind(string goodId);
        #endregion
        #region 加工
        /// <summary>
        /// 添加加工
        /// </summary>
        /// <param name="process"></param>
        /// <returns></returns>
        int AddProcess(T_Process process);
        /// <summary>
        /// 修改加工信息
        /// </summary>
        /// <param name="process"></param>
        /// <returns></returns>
        int UpdateProcess(T_Process process);
        /// <summary>
        /// 反填加工信息
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_Process GetProcessFind(string goodId);
        /// <summary>
        /// 添加加工企业
        /// </summary>
        /// <param name="process"></param>
        /// <returns></returns>
        int AddProcessEnterprise(T_ProcessEnterprise process);
        /// <summary>
        /// 修改加工企业
        /// </summary>
        /// <param name="process"></param>
        /// <returns></returns>
        int UpdateProcessEnterprise(T_ProcessEnterprise process) ;
        /// <summary>
        /// 反填加工企业
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_ProcessEnterprise GetProcessEnterpriseFind(string goodId);
        /// <summary>
        /// 添加供应商
        /// </summary>
        /// <param name="supplier"></param>
        /// <returns></returns>
        int AddSupplier(T_Supplier supplier);
        /// <summary>
        /// 修改供应商
        /// </summary>
        /// <param name="supplier"></param>
        /// <returns></returns>
        int UpdateSupplier(T_Supplier supplier);
        /// <summary>
        /// 反填供应商
        /// </summary>
        /// <param name="goodId"></param>
        /// <returns></returns>
        T_Supplier GetSupplierFind(string goodId);
        #endregion
    }
}
